#!/usr/bin/python3

singers = []
songs = []


def menu():
    print("""1.增加歌手
2.显示歌手名单
3.删除歌手
4.显示歌库
5.删除歌曲
6.增加歌曲
7.统计有歌手和歌曲
8.查询歌手是否在名单中
9.查询歌曲是否在歌单中
0.退出菜单""")
    return input('请输入你要使用的功能:')


def whileY(func):
    option = 'y'
    while option == 'y':
        func()
        option = input('继续?(y/n):')


def addSinger():
    name = input('请输入要添加的歌手名:')
    if name in singers:
        print('歌手已在名单中')
    else:
        singers.append(name)
        print('添加成功')


def addSomeSingers():
    whileY(addSinger)

def showSinger():
    if len(singers) == 0:
        print('歌手名单为空')
    else:
        print('歌手名单:')
        print(*singers)


def delSingerByNum():
    num = int(input('请输入歌手的编号:'))
    if num >= 0 and num < len(singers):
        singers.pop(num)
        print('删除成功')


def delSingerByName():
    name = input('请输入歌手的名字:')
    if name in singers:
        singers.remove(name)
        print('删除成功')


def delSinger():
    option = 'y'
    while option == 'y':
        choice = input('1. 根据编号删除歌手 2.根据名字删除歌手:')
        if choice == '1':
            delSingerByNum()
        elif choice == '2':
            delSingerByName()
        else:
            return
        option = input('继续删除?(y/n)')


def showSong():
    if len(songs) == 0:
        print('歌曲名单为空')
    else:
        print('歌曲名单:')
        print(*songs)


def delSongByNum():
    num = int(input('请输入歌曲的编号:'))
    if num >= 0 and num < len(songs):
        songs.pop(num)
        print('删除成功')


def delSongByName():
    name = input('请输入歌曲的名字:')
    if name in songs:
        songs.remove(name)
        print('删除成功')


def delSong():
    option = 'y'
    while option == 'y':
        choice = input('1. 根据编号删除歌曲 2.根据名字删除歌曲:')
        if choice == '1':
            delSongByNum()
        elif choice == '2':
            delSongByName()
        else:
            return
        option = input('继续删除?(y/n):')


def addSong():
    option = 'y'
    while option == 'y':
        name = input('请输入要添加的歌曲名:')
        if name in songs:
            print('歌曲已在名单中')
        else:
            songs.append(name)
            print('添加成功')
        option = input('继续添加?(y/n):')


def countSingerAndSong():
    singerCount = len(singers)
    songCount = len(songs)
    print('歌手的数目为:', singerCount)
    print('歌曲的数目为:', songCount)

def hasX(x):
    pass 

def hasSinger():
    name = input('请输入要查询的歌手名:')
    if name in singers:
        print('歌手 %s 在名单中' % name)
    else:
        print('歌手 %s 不在名单中' % name)


def hasSong():
    name = input('请输入要查询的歌名:')
    if name in songs:
        print('歌曲 %s 在名单中' % name)
    else:
        print('歌曲 %s 不在名单中' % name)


functions = {
    '1': addSomeSingers,
    '2': showSinger,
    '3': delSinger,
    '4': showSong,
    '5': delSong,
    '6': addSong,
    '7': countSingerAndSong,
    '8': hasSinger,
    '9': hasSong
}


def main():
    while True:
        choice = menu()
        if choice in functions:
            functions[choice]()
        else:
            break


main()
